package com.example.eventdemo.publisher;

import lombok.RequiredArgsConstructor;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationEvent;
import org.springframework.stereotype.Component;

/**
 * 用户服务（事件发布者）
 */
@Component
@RequiredArgsConstructor // Lombok生成构造方法，注入依赖
public class EventPublisher {


    // Spring上下文，用于发布事件
    private final ApplicationContext applicationContext;

    /**
     * 用户注册方法
     * 注册成功后发布事件
     */
    public void push(ApplicationEvent applicationEvent) {
        // 1. 创建用户（模拟数据库操作）
        
        // 2. 发布用户注册事件
        applicationContext.publishEvent(applicationEvent);
    }
}